package so.obligatorio.procesos;

import java.util.List;

import so.obligatorio.Reloj;
import so.obligatorio.Simulacion;

public abstract class PDV extends Proceso {	
	
	public PDV() {
		super(Reloj.getInstance());
	}

	protected boolean obtenerEntradas(Integer cantidad) {
		PDVCentral pdvC = PDVCentral.getInstance();
		boolean resultado = false;
		try {
			pdvC.getSemaphore().acquire();
			resultado = pdvC.obtenerEntradas(cantidad);
			pdvC.getSemaphore().release();
		} catch (InterruptedException e) {
			e.printStackTrace();
			return false;
		}

		return resultado;
	}

	/**
	 * Obtiene el cliente de la lista y lo remueve de ella
	 * @param lista
	 * @return
	 */
	protected Cliente obtenerCliente(List<Cliente> lista) {
		Cliente c = null;
		if (lista.size() > 0) {
			c = lista.get(0);
			if (c != null) {
				lista.remove(0);
			}
		}
		return c;
	}
}
